home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / sptmbr11.lha / clx / exclMakefile < prev    next >
Lisp/Scheme  |  1991-06-10  |  5KB  |  169 lines

  1. #  Makefile for CLX
  2. #  (X11 R4.4 release, Franz Allegro Common Lisp version)
  3. #
  4.  
  5. # *************************************************************************
  6. # * Change the next line to point to where you have Common Lisp installed *
  7. # *        (make sure the Lisp doesn't already have CLX loaded in)        *
  8. # *************************************************************************
  9. CL    = /usr/local/bin/cl
  10.  
  11. RM    = /bin/rm
  12. SHELL    = /bin/sh
  13. ECHO    = /bin/echo
  14. TAGS    = /usr/local/lib/emacs/etc/etags
  15.  
  16. # Name of dumped lisp
  17. CLX    = CLX
  18.  
  19. CLOPTS    = -qq
  20.  
  21. # Use this one for Suns
  22. CFLAGS    = -O -DUNIXCONN
  23. # Use this one for Silicon Graphics & Mips Inc MIPS based machines
  24. # CFLAGS = -O -G 0 -I/usr/include/bsd
  25. # Use this one for DEC MIPS based machines
  26. # CFLAGS = -O -G 0 -DUNIXCONN
  27. # Use this one for HP machines
  28. # CFLAGS = -O -DSYSV -DUNIXCONN
  29.  
  30.  
  31. # Lisp optimization for compiling
  32. SPEED    = 3
  33. SAFETY    = 0
  34.  
  35.  
  36. C_SRC    = excldep.c socket.c
  37. C_OBJS    = excldep.o socket.o
  38.  
  39. L_OBJS    = defsystem.fasl package.fasl excldep.fasl depdefs.fasl clx.fasl \
  40.     dependent.fasl exclcmac.fasl macros.fasl bufmac.fasl buffer.fasl \
  41.     display.fasl gcontext.fasl requests.fasl input.fasl fonts.fasl \
  42.     graphics.fasl text.fasl attributes.fasl translate.fasl keysyms.fasl \
  43.     manager.fasl image.fasl resource.fasl
  44.  
  45. L_NOMACROS_OBJS    = package.fasl excldep.fasl depdefs.fasl clx.fasl \
  46.     dependent.fasl buffer.fasl display.fasl gcontext.fasl \
  47.     requests.fasl input.fasl fonts.fasl graphics.fasl text.fasl \
  48.     attributes.fasl translate.fasl keysyms.fasl manager.fasl image.fasl \
  49.     resource.fasl
  50.  
  51. L_SRC    = defsystem.cl package.cl excldep.cl depdefs.cl clx.cl \
  52.     dependent.cl exclcmac.cl macros.cl bufmac.cl buffer.cl \
  53.     display.cl gcontext.cl requests.cl input.cl fonts.cl \
  54.     graphics.cl text.cl attributes.cl translate.cl keysyms.cl \
  55.     manager.cl image.cl resource.cl
  56.  
  57. # default and aliases
  58. all:    no-clos
  59. # all:    partial-clos
  60. compile-CLX-for-CLUE:    compile-partial-clos-CLX
  61. clue:    partial-clos
  62.  
  63. #
  64. # Three build rules are provided: no-clos, partial-clos, and full-clos.
  65. # The first is no-clos, which results in a CLX whose datastructures are
  66. # all defstructs.  partial-clos results in xlib:window, xlib:pixmap, and
  67. # xlib:drawable being CLOS instances, all others defstructs.  full-clos
  68. # makes all CLX complex datatypes into CLOS instances.
  69. #
  70. # (note that the :clos feature implies native CLOS *not* PCL).
  71. #
  72.  
  73. no-clos:    $(C_OBJS) compile-no-clos-CLX cat
  74.  
  75. #
  76. # This rule is used to compile CLX to be used with XCW version 2, or CLUE.
  77. #
  78. partial-clos:    $(C_OBJS) compile-partial-clos-CLX cat
  79.  
  80. full-clos:    $(C_OBJS) compile-full-clos-CLX cat
  81.  
  82.  
  83. c:    $(C_OBJS)
  84.  
  85.  
  86. compile-no-clos-CLX:    $(C_OBJS)
  87.     $(ECHO) " \
  88.     (set-case-mode :case-sensitive-lower) \
  89.     (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
  90.     #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
  91.     (load \"defsystem\") \
  92.     #+allegro (compile-system :clx) \
  93.     #-allegro (compile-clx) \
  94.     #+allegro (compile-system :clx-debug)" \
  95.     | $(CL) $(CLOPTS) -batch
  96.  
  97. compile-partial-clos-CLX:    $(C_OBJS)
  98.     $(ECHO) " \
  99.     #+clos (set-case-mode :case-sensitive-lower) \
  100.     #-clos (setq excl::*print-nickname* t) \
  101.     (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
  102.     (unless (or (find-package 'clos) (find-package 'pcl)) \
  103.       (let ((spread (sys:gsgc-parameter :generation-spread))) \
  104.         (setf (sys:gsgc-parameter :generation-spread) 1) \
  105.         (require :pcl) \
  106.         (provide :pcl) \
  107.         (gc) (gc) \
  108.         (setf (sys:gsgc-parameter :generation-spread) spread))) \
  109.     #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
  110.     (load \"defsystem\") \
  111.     (load \"package\") \
  112.     (setq xlib::*def-clx-class-use-defclass* '(xlib:window xlib:pixmap xlib:drawable)) \
  113.     #+allegro (compile-system :clx) \
  114.     #-allegro (compile-clx \"\" \"\" :for-clue t) \
  115.     #+allegro (compile-system :clx-debug)" \
  116.     | $(CL) $(CLOPTS) -batch
  117.  
  118. compile-full-clos-CLX:    $(C_OBJS)
  119.     $(ECHO) " \
  120.     #+clos (set-case-mode :case-sensitive-lower) \
  121.     #-clos (setq excl::*print-nickname* t) \
  122.     (proclaim '(optimize (speed $(SPEED)) (safety $(SAFETY)))) \
  123.     (unless (or (find-package 'clos) (find-package 'pcl)) \
  124.       (let ((spread (sys:gsgc-parameter :generation-spread))) \
  125.         (setf (sys:gsgc-parameter :generation-spread) 1) \
  126.         (require :pcl) \
  127.         (provide :pcl) \
  128.         (gc) (gc) \
  129.         (setf (sys:gsgc-parameter :generation-spread) spread))) \
  130.     #+(version>= 4 0) (pushnew :clx-ansi-common-lisp *features*) \
  131.     (load \"defsystem\") \
  132.     (load \"package\") \
  133.     (setq xlib::*def-clx-class-use-defclass* t) \
  134.     #+allegro (compile-system :clx) \
  135.     #-allegro (compile-clx \"\" \"\" :for-clue t) \
  136.     #+allegro (compile-system :clx-debug)" \
  137.     | $(CL) $(CLOPTS) -batch
  138.  
  139.  
  140. cat:
  141.     -cat $(L_NOMACROS_OBJS) > CLX.fasl
  142.  
  143.  
  144. load-CLX:
  145.     $(ECHO) " \
  146.     (let ((spread (sys:gsgc-parameter :generation-spread))) \
  147.       (setf (sys:gsgc-parameter :generation-spread) 1) \
  148.       (load \"defsystem\") \
  149.       #+allegro (load-system :clx) \
  150.       #-allegro (load-clx) \
  151.       (gc :tenure) \
  152.       (setf (sys:gsgc-parameter :generation-spread) spread)) \
  153.     (gc t)" \
  154.     '(dumplisp :name "$(CLX)" #+allegro :checkpoint #+allegro nil)' \
  155.     "(exit)" | $(CL) $(CLOPTS)
  156.  
  157. clean:
  158.     $(RM) -f *.fasl debug/*.fasl $(CLX) core $(C_OBJS) make.out
  159.  
  160.  
  161. install:
  162.     mv CLX.fasl $(DEST)/clx.fasl
  163.     mv *.o $(DEST)
  164.  
  165.  
  166. tags:
  167.     $(TAGS) $(L_SRC) $(C_SRC)
  168.